1. Technical Field
This application relates to document analysis, and in particular relates to tailored analysis of specific document types, such as requirements specifications.
2. Related Art
Rapid developments in computer technology have given rise to the widespread adoption of document authoring applications. Today, a significant portion of the modern workforce generates documents using a word processor. Unfortunately, the writing skills of the typical individual have not improved at anywhere near the pace of technology. As a result, computer technology often results in faster generation of poorly written documents, rather than in efficient production of clear, consistent, and unambiguous work product.
At the same time, significant technical challenges exist in analyzing and providing constructive feedback on documents. The documents themselves vary widely in purpose, format, and content, and there is no general flexible and adaptable framework in place for specific document analysis, commenting, or reporting. Document authoring applications only provide basic tools that cooperate with authors to improve document quality. As examples, analysis tools such as spell checkers and grammar checkers only provide analysis at a general level, such as checks of the fundamental rules of a given language. In other words, the specialized nature of many documents defeats more specific analysis that could provide meaningful criticism on a document and vastly improve the substantive content of a document.
Poorly written documents have many adverse and costly consequences. Vague or ambiguous terms create misunderstandings and misinterpretations. Poor formatting frustrates testing and validation procedures. Failure to clearly separate concepts results in extra work needed to untangle and factor concepts into individual pieces. Contradictory statements, which often arise in lengthy, complex documents, create extra work to resolve the meaning and intended purpose of passages in the document. Inconsistent terms leave different readers with different, possibly inconsistent, expectations regarding specific parts of the document.
One specific application of the system described below is to analyze requirements documents. Requirements documents mediate between stakeholder objectives and the solution that developers will create to achieve the objectives. A successful requirements process is one that creates requirements documentation that captures stakeholder needs, sets stakeholder expectations, and may be used by developers to create a solution which satisfies the stakeholder's needs and expectations. Unsuccessful requirements processes result in requirements that do not ensure that stakeholders understand what they will be getting or that developers will build something that is ultimately going to satisfy the stakeholder's needs.
While creating a good, clear requirements document may sound straightforward, it is not. For large software systems it is extremely difficult to create good requirements documents. Furthermore, defects in the requirements process are very expensive. Incorrect, incomplete, or unclear requirements are the most common cause of software defects, and problems resulting from requirements defects are also the most expensive kinds of “bugs” to fix.
Some existing tools primarily concentrate of maintaining requirements and test scripts after a baseline requirements set has been defined. However, this is only part of the story. Many of the most costly requirements defects happen during the definition process, resulting in a baseline that is of poor quality, and prior tools are agnostic to the quality of the requirements or of the definition process and therefore provide no aid in that regard.
A need exists for improved document analysis tools that address the problems noted above and other previously experienced.